package com.pig4cloud.util;

import cn.hutool.core.util.NumberUtil;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * @Description: 游戏相关工具类
 * @CreateTime: 2024-02-23
 * @Author: Oliver
 * @Version: 1.0.0
 */
public class GameUtil {

	/**
	 * Description  将金额转换为游戏汇率
	 * 金币算法 = RMB * 后台配置汇率 例 1元 * 10 比例 = 10 金币 1比10
	 *
	 * @param price: 金额
	 * @param rate:  汇率
	 * @return java.math.BigDecimal 转换后金币数
	 * @Date 2024/2/23 17:20
	 * @Author Oliver
	 **/
	public static BigDecimal convertGameExchangeRate(BigDecimal price, Long rate) {
		return NumberUtil.mul(price, rate).setScale(2, RoundingMode.HALF_UP);
	}

	/**
	 * Description  将游戏金额转换为实际汇率 真实
	 * 金币算法 = RMB * 后台配置汇率 例 10 金币 / 10 比例 = 1 元 1比10
	 *
	 * @param gold: 金币数
	 * @param rate: 汇率
	 * @return java.math.BigDecimal 转换后金币数
	 * @Date 2024/2/23 17:20
	 * @Author Oliver
	 **/
	public static BigDecimal convertGameGoldExchangeRealRate(BigDecimal gold, Long rate) {
		return NumberUtil.div(gold, rate, 2, RoundingMode.HALF_UP);
	}

	/**
	 * Description  将金额转换为云石（四舍五入）
	 * 金币算法 = RMB * 后台配置汇率 例 1.55元 * 10 比例 = 15.5 金币, 四舍五入 最终为16
	 *
	 * @param price: 金额
	 * @param rate:  比例
	 **/
	public static BigDecimal convertPrice2Stone(BigDecimal price, Long rate) {
		return NumberUtil.mul(price, rate).setScale(0, RoundingMode.HALF_UP);
	}
}
